package com.bondex.charter.commons;

/**
 * 包船状态枚举
 * Created by JD on 2021/9/16.
 */
public enum CharterStatusEnum {

    //@formatter:off

	//订舱状态
	 BOOKING_NEW(       0,      "BOOKING_NEW",          "订舱待审核")
	,BOOKING_PENDING(   2,      "BOOKING_PENDING",      "待定")
	,BOOKING_RELEASE(   1,      "BOOKING_RELEASE",      "已放舱")
	,BOOKING_AMENDMENT( 3,      "BOOKING_AMENDMENT",    "订舱更改")
	,BOOKING_REJECTED(  10,     "BOOKING_REJECTED",     "拒绝订舱")
	,BOOKING_CANCEL(    11,     "BOOKING_CANCEL",       "退舱")

	,BOOKING_ROLL_OVER_NOT(         0,      "BOOKING_ROLL_OVER_NOT",            "未甩货")
	,BOOKING_ROLL_OVER(             1,      "BOOKING_ROLL_OVER",                "甩货")


	//截单状态
	,SI_NEW(                    0,      "SI_NEW",                   "截单待确认")
	,SI_CONFIRMED(              1,      "SI_CONFIRMED",             "已截单")
	,SI_BL_AMENDMENT(           3,      "SI_BL_AMENDMENT",          "截单更改")
	,SI_AMS_FILING(             4,      "SI_AMS_FILING",            "AMS已申报")
	,SI_BL_RELEASE(             5,      "SI_BL_RELEASE",            "已签发")

	//截单标志  标志类，在数据库中使用一个字段实现（JSON，或者大INT）
	,SI_AMS_MATCHING_NOT(               0,      "SI_AMS_MATCHING_NOT",              "AMS未匹配")
	,SI_AMS_MATCHING(                   1,      "SI_AMS_MATCHING",                  "AMS已匹配")
	,SI_AMENDMENT_FEE_CHARGING_NOT(     0,      "SI_AMENDMENT_FEE_CHARGING_NOT",    "未收费改单")
	,SI_AMENDMENT_FEE_CHARGING(         1,      "SI_AMENDMENT_FEE_CHARGING",        "收费改单")
	,SI_SOC_NOT(                        0,      "SI_SOC_NOT",                       "未SOC")
	,SI_SOC(                            1,      "SI_SOC",                           "SOC")

//	,SI_BL_AMENDMENT_NOT(       0,      "SI_BL_AMENDMENT_NOT",      "未改单")
//	,SI_AMS_FILING_NOT(         0,      "SI_AMS_FILING_NOT",        "AMS未申报")
//	,SI_BL_RELEASE_NOT(         0,      "SI_BL_RELEASE_NOT",        "未签发")


	;
	//@formatter:on

    private Integer valueDB;
    private String code;
    private String name;

    CharterStatusEnum(int nValueDB, String sCode, String sName) {
        this.valueDB = nValueDB;
        this.code = sCode;
        this.name = sName;
    }

    public Integer getValueDB() {
        return valueDB;
    }

    public String getValueDBString() {
        return valueDB.toString();
    }

    public String getCode() {
        return code;
    }

    public String getName() {
        return this.name;
    }
}
